package org.japo.java.swing.igu;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import javax.swing.ButtonGroup;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
import javax.swing.border.TitledBorder;
import org.japo.java.swing.listeners.GEA;

public class IGU extends JFrame {

    private final String PREGUNTA = "¿Cree que este será un buen año?";

    // Nombres predeterminados de imágenes
    private final String IMG_SI = "mini_si.jpg";
    private final String IMG_NO = "mini_no.jpg";
    private final String IMG_TV = "mini_tv.jpg";

    // Carpeta predeterminada de las imágenes
    private final String RUTA_IMG = "images";

    // referencias a los componentes
    private JLabel lblPregunta;
    private JRadioButton rbtSi;
    private JRadioButton rbtNo;
    private JRadioButton rbtNsnc;
    private JLabel lblImagen;

    public IGU() {
        iniciarComponentes();
    }

    private void iniciarComponentes() {

        JPanel pnlPrincipal = new JPanel();
        pnlPrincipal.setLayout(new BorderLayout(20, 20));

        // Borde principal
        Border brdPrincipal = new EmptyBorder(20, 20, 20, 20);
        pnlPrincipal.setBorder(brdPrincipal);

        // Fuente
        Font f = new Font("Calibri", Font.BOLD, 20);
////////////////////////////////////////////////////////////////////  
        // Panel pregunta
        JPanel pnlPregunta = new JPanel();
        Dimension dimPregunta = new Dimension(200, 50);
        pnlPregunta.setPreferredSize(dimPregunta);
        pnlPrincipal.add(pnlPregunta, BorderLayout.NORTH);

        // Border pregunta
        Border bPregunta = new TitledBorder("Pregunta");
        pnlPregunta.setBorder(bPregunta);

        // Etiqueta pregunta
        lblPregunta = new JLabel();
        lblPregunta.setText(PREGUNTA);
        lblPregunta.setHorizontalAlignment(JLabel.CENTER);
        lblPregunta.setFont(f);
        pnlPregunta.add(lblPregunta);
        /////////////////////////////////////////////////////////////////// 
        //Panel de opciones
        JPanel pnlOpciones = new JPanel();
        Dimension dimOpciones = new Dimension(190, 70);
        pnlOpciones.setPreferredSize(dimOpciones);
        pnlPrincipal.add(pnlOpciones, BorderLayout.WEST);

        //Border opciones
        Border bOpciones = new TitledBorder("Opciones");
        pnlOpciones.setBorder(bOpciones);

//////////////////////////////////////////////////////////////////
        //Tamaño radiobuttons
        Dimension dimBotones = new Dimension(150, 30);

        //Gestos de eventos de accion
        GEA gea = new GEA(this);

        //Radiobutton  NS/NC
        rbtNsnc = new JRadioButton();
        rbtNsnc.setPreferredSize(dimBotones);
        rbtNsnc.setText("NS/NC");
        rbtNsnc.setFont(f);
        rbtNsnc.addActionListener(gea);
        pnlOpciones.add(rbtNsnc);

        //Radiobutton  SI
        rbtSi = new JRadioButton();
        rbtSi.setPreferredSize(dimBotones);
        rbtSi.setText("SI");
        rbtSi.setFont(f);
        rbtSi.addActionListener(gea);
        pnlOpciones.add(rbtSi);

        //Radiobutton  no
        rbtNo = new JRadioButton();
        rbtNo.setPreferredSize(dimBotones);
        rbtNo.setText("NO");
        rbtNo.setFont(f);
        rbtNo.addActionListener(gea);
        pnlOpciones.add(rbtNo);

        //Grupo de botones
        ButtonGroup bg = new ButtonGroup();
        bg.add(rbtNsnc);
        bg.add(rbtSi);
        bg.add(rbtNo);

        //////////////////////////////////////////////////////////////////
        //Panel imagen
        JPanel pnlImagen = new JPanel();
        Dimension dimImagen = new Dimension(160, 70);
        pnlImagen.setPreferredSize(dimImagen);
        pnlPrincipal.add(pnlImagen, BorderLayout.EAST);

        //Borde de la imagen
        Border bImagen = new TitledBorder("Imagen");
        pnlImagen.setBorder(bImagen);

        //Imagen
        Icon i = new ImageIcon();

        //Etiqueta de la imagen
        lblImagen = new JLabel();
        lblImagen.setIcon(i);
        pnlImagen.add(lblImagen);

///////////////////////////////////////////////////////////////////  
        // Ventana principal
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setContentPane(pnlPrincipal);
        setResizable(false);
        setTitle("Encuesta");
        setSize(400, 270);
        setLocationRelativeTo(this);

    }
//////////////////////////////////////////////////////////////////

    //Procesar los radiobuttons
     
    
    private String obtenerRutaImagen(Object o) {
        String ruta;
        if (o.equals(rbtSi)) {
            ruta = RUTA_IMG + "/" + IMG_SI;
        } else if (o.equals(rbtNo)) {
            ruta = RUTA_IMG + "/" + IMG_NO;
        } else {
            ruta = RUTA_IMG + "/" + IMG_TV;
        }
        return ruta;
    }

    public void procesarEncuesta(Object o) {
        //Obtener la ruta de la imagen
        String rutaImg = obtenerRutaImagen(o);
        
        //Instanciar la imagen
        Icon i = new ImageIcon(rutaImg);

        //Mostrar la imagen
        lblImagen.setIcon(i);
    }
   
}
